package com.chmingx.JavaBasic.thread.sync;

import org.junit.Test;

/**
 * synchronized 是可重入锁
 *
 * JVM允许同一个线程重复获取同一个锁，这种能被同一个线程反复获取的锁，就叫做可重入锁
 */
public class Reenter {
    @Test
    public void test() {
        Object o = new Object();
        synchronized (o) {
            System.out.println("外层");
            synchronized (o) { // 在外层获取锁后，此处可以直接进入
                System.out.println("中层");
                synchronized (o) {
                    System.out.println("内层");
                }
            }
        }
    }
}
